home *** CD-ROM | disk | FTP | other *** search
- /*
- File: GetToolConfig.c
-
- Description: This q&d allows one to accumulate into a TEXT file the config strings
- of Connection Tools that have been configured with CMChoose.
-
- Author: GDG
-
- Copyright: Copyright: © 1999 by Apple Computer, Inc.
- all rights reserved.
-
- Disclaimer: You may incorporate this sample code into your applications without
- restriction, though the sample code has been provided "AS IS" and the
- responsibility for its operation is 100% yours. However, what you are
- not permitted to do is to redistribute the source as "DSC Sample Code"
- after having made changes. If you're going to re-distribute the source,
- we require that you make it clear in the source that the code was
- descended from Apple Sample Code, but that you've made changes.
-
- Change History (most recent first):
- 6/22/99 Updated for Metrowerks Codewarrior Pro 2.1(KG)
- 2/97 recompiled PPC and 68K projects in CodeWarrior 11(MW)
- 8/30/91 fixed it up to be useful(GDG)
- 8/10/91 created this bugger from some existing source lying about(GDG)
-
-
- */
- #include <Traps.h>
- #include <stdio.h>
- #include <CommResources.h>
- #include <Connections.h>
- #include <Memory.h>
- #include <TextUtils.h>
- #include <CTBUtilities.h>
-
- // function prototypes
- void main(void);
-
- void main() {
- short procID;
- ConnHandle connection;
- CMBufferSizes bufSizes;
- OSErr err;
- Str255 toolName;
- Point where;
- short result;
- Ptr configStream;
- FILE* fp;
-
- // putting something into TTY window initializes QD globals, etc.
- printf("•• running Get Tool Config program ••\n\n");
-
- // initialize CTB and managers
- if (NGetTrapAddress(_CommToolboxDispatch, OSTrap) ==
- NGetTrapAddress(_Unimplemented, OSTrap)) {
- printf("•• CTB Not available ••\n");
- return;
- }
- if (noErr != InitCRM()) {
- printf("•• CTB Available but InitCRM failed. ••\n");
- return;
- }
- if (noErr != InitCTBUtilities()) {
- printf("•• CTB Available: InitCTBUtilities Fail. ••\n");
- return;
- }
- if (cmNoTools == InitCM()) {
- printf("•• CTB Available: No connection tools found. ••\n");
- return;
- }
-
- // get a Connection Tool name
- err = CRMGetIndToolName('cbnd',1,toolName);
- if (err != noErr) {
- printf("•• CRMGetIndToolName failed... no Conn Tool available ?!?!? ••\n");
- return;
- }
- // get a resource ID for it
- procID = CMGetProcID(toolName);
- if (-1 == procID) {
- printf("•• CMGetProcID: No 'Apple (ISDN) Serial Tool'. ••\n");
- return;
- }
-
- // init the CMBufferSizes variable so that Tool will init with defaults
- bufSizes[cmDataIn] = 0;
- bufSizes[cmDataOut] = 0;
- bufSizes[cmCntlIn] = 0;
- bufSizes[cmCntlOut] = 0;
- bufSizes[cmAttnIn] = 0;
- bufSizes[cmAttnOut] = 0;
-
- // now get a conn record set up
- connection = CMNew(procID, cmData|cmNoMenus|cmQuiet, bufSizes, 0, 0);
- if (connection == nil) {
- printf("•• CMNew: Can't create a CTB connection record. ••\n");
- return;
- }
-
- // CMChoose Dialog has to hang off this point (global coordinates)
- SetPt(&where,20,40);
- // now do CMChoose et al:
- result = CMChoose(&connection,where,NULL);
- if ((result == chooseOKMajor) || (result == chooseOKMinor)) {
- configStream = CMGetConfig(connection);
- if (configStream == NULL) {
- printf("CMGetConfig failed\n\n");
- } else {
- CMGetToolName((**connection).procID,toolName);
- p2cstr(toolName);
- printf("• Configuration string for %s:\n'%s'\n\n",toolName, configStream);
- fp = fopen("Tool Configs","a");
- if (fp != NULL) {
- fprintf(fp,"• Configuration string for %s:\n'%s'\n\n",toolName, configStream);
- fclose(fp);
- printf("•• Configuration string info appended to file 'Tool Configs'. ••\n\n");
- } else {
- printf("•• Output file could not be opened. ••\n");
- }
- DisposePtr(configStream);
- }
- } else {
- printf("•• CMChoose failed. ••\n");
- }
- CMDispose(connection);
- printf("•• closing Get Tool Config program ••\n\n");
- }
-